//
//  ZMThirdVC.m
//  demo
//
//  Created by chenzm on 2018/8/17.
//  Copyright © 2018年 chenzm. All rights reserved.
//

#import "ZMThirdVC.h"
#import "ZMPerson.h"

@interface ZMThirdVC ()

@property (nonatomic, strong) ZMPerson *person;

@end

@implementation ZMThirdVC

- (void)initView {
    [super initView];
    _person = [ZMPerson new];
}

- (void)buttonClick:(UIButton *)sender {
    /*
     动态添加 coding 方法
     (IMP)codingOC 意思是 codingOC 的地址指针;
     "v@:" 意思是，v 代表无返回值 void，如果是 i 则代表 int；@代表 id sel; : 代表 SEL _cmd;
     “v@:@@” 意思是，两个参数的没有返回值。
     */
    class_addMethod([_person class], @selector(test), (IMP)codingObjC, "v@:");
    // 调用 coding 方法响应事件
    if ([_person respondsToSelector:@selector(test)]) {
        [_person performSelector:@selector(test)];
        
        
        self.testLabelText = @"添加方法成功";
    }else{
        self.testLabelText = @"添加方法失败";
    }
    
    [ZMTools zm_searchClassMethod:_person isLog:YES];
    
    
    [_person performSelector:@selector(eat:) withObject:@100 afterDelay:3];
    

    
    
}

-(void)test{
    NSLog(@"测试测试");
}

// 方法实现
void codingObjC(id self,SEL _cmd){
    NSLog(@"添加方法成功");
}

@end
